import multer from 'multer'   //图片上传的中间键
import dayjs from 'dayjs'
import { mkdirSync } from 'fs'
import path from 'path'
const stroage = multer.diskStorage({
    destination(req,file,cb){
        // destination 用来配置存储文件的路径 cb的函数传入的就是最终要放置文件的目录
        //根据日期不同上传的图片放入到不同的文件夹
        const savepath = dayjs().format('YYYYMMDD')
        mkdirSync(path.join('./public/uploads',savepath),{
            recursive: true
        })
        cb(null, './public/uploads' + '/' + savepath) 
    },
    filename(req,file,cb){
        // filename 用来配置最终存储的文件的名称 cb函数传入的就是保存的文件名
        //保存同一张图片都会使用图片自己本身的图片名称,一旦一张图片传入两次,后面传的图片会覆盖前面的传的图片
        // cb(null,file.originalname)
        //下面的设置的是一张图片不论传入多少次,图片名称都会不一样
        const ext = file.originalname.split('.').pop()
        const filename = Date.now()
        cb(null,filename + '.' + ext)
    }
})
export const upload = multer({ storage:stroage }); // 构建最终的一个上传中间件
// 上传的配置 end


//实现上传业务
//单文件上传
// app.post('/uloadone',upload.single('file'),async(req,res)=>{
//     console.log('保存成功的文件',req.file)
//     res.send('上传成功')
// })
